<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"%>
<html>
<%
String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
%>
<head>
	<base href="<%=basePath%>">
	<meta charset="UTF-8">
	<title align='center'>图书管理馆长后台</title>
	<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.4.1.js"></script>
</head>
<body>

<script type="text/javascript">
    $(function (){
		//为查询按钮添加单击事件,查询符合条件的，然后显示在列表下面
		$("#categorySelectBtn").click(function () {
			var bookCategory = $("#bookCategoryId").val();
			 $.ajax({
				 url:'selectCategory?method=selectCategoryFuzzy',
				 data:{
				 	bookCategory:bookCategory
				 },
				 type:'post',
				 dataType:'json',
				 success:function (data) {
					 showBookForPage(data);
				 }
			 });
		});

		//全选功能实现
		$("#checkAllCategory").click(function () {
			$("#tBody input[type = 'checkbox']").prop("checked", this.checked);
		});

		$("#tBody input[type = 'checkbox']").click( function () {
			if ($("#tBody input[type = 'checkbox']").length == $("#tBody input[type = 'checkbox']:checked").length) {
				$("#checkAllCategory").prop("checked", true);
			} else {
				$("#checkAllCategory").prop("checked", false);
			}
		});

		//为删除按钮添加单击事件，删除类型，同时删除该类型下的所有书籍
		$("#deleteCategoryBtn").click(function () {
			var checkedIds = $("#tBody input[type = 'checkbox']:checked");
			if(checkedIds.length == 0){
				alert("请选择要删除的书目");
				return ;
			}
			//获取所有选中对象id
			if (window.confirm("确定删除吗？")) {
				//获取所有选中对象id
				var ids = "";
				$.each(checkedIds, function () {
					ids += this.value + ',';
				});
				ids = ids.substr(0, ids.length - 1);
				//发送请求
				$.ajax({
					url: 'deleteCategory?method=deleteCategoryByIds',
					data: {
						ids:ids
					},
					type: 'post',
					dataType: 'json',
					success: function (data) {
						alert(data.message);
						//直接再调一次这个函数就刷新列表了
						$("#categorySelectBtn").click();
					}
				});
			}
		});

		//为添加按钮绑定单击事件
		$("#addCategoryBtn").click(function () {
			alert("书目管理员添加");
			//每一次显示这个div，要把之前的值删掉
			$("#categoryAddDiv input[type='text']").val("");
			var categoryAll = $("#categoryAddDiv");
			for (var i =0;i<categoryAll.length ; i++ ){
				categoryAll[i].style.display="block";
			}
			var categoryBtn = $("#categoryAddBtnDiv");
			for(var j = 0;j<categoryBtn.length;j++){
			categoryBtn[j].style.display="block";
			}
		});

		$("#determineAddBtn").click(function () {
			var category = $("#category").val();
			if(category === null||category === ""||category === undefined){
				alert("请输入要添加的书目");
				return ;
			}
			$.ajax({
				url:'addCategory?method=addCategoryByCondition',
				data:{
					category:category
				},
				type:'post',
				dataType:'json',
				success:function (data) {
					alert(data.message);
					if(data.code==1){
						for (var i = 0; i < $("#categoryAddDiv").length; i++) {
							$("#categoryAddDiv")[i].style.display = "none";
						}
						for (var j = 0; j < $("#categoryAddBtnDiv").length; j++) {
							$("#categoryAddBtnDiv")[j].style.display = "none";
						}
					}
					$("#categoryTable").append('<tbody id="tBody"><tr><td><input type="checkbox" value=' + data.retData.id + '/></td><td>' + data.retData.bookType + '</td></tr></tbody>');
				}
			});
		});

		//添加书目的取消按钮
		$("#cancelAddBtn").click(function () {
			for (var i = 0; i < $("#categoryAddDiv").length; i++) {
				$("#categoryAddDiv")[i].style.display = "none";
			}
			for(var j = 0;j<$("#categoryAddBtnDiv").length;j++ ){
				$("#categoryAddBtnDiv")[j].style.display = "none";
			}
		});


		//为查询按钮绑定单击事件
		$("#staffSelectBtn").click(function () {
			$("#StaffTBody").remove();
			var staffName = $("#staffNameText").val();
			var staffSex = $("#staffSexText").val();
			var staffType = $("#staffTypeText").val();
			$.ajax({
				url:'selectStaff?method=selectStaffByCondition',
				data:{
					staffName:staffName,
					staffSex:staffSex,
					staffType:staffType
				},
				type:'post',
				dataType:'json',
				success:function (data) {
					 //这个data的结构是
					//returnObject ----code
					//             ----message
					//             ----retDate----List-----CommonStaffList
					//								  -----CategoryStaffList
					showStaffPage(data);
				}
			});
		});

		//为升职按钮绑定单击事件,先去查是不是普通员工
		var staff = null;
		$("#promoteBtn").click(function () {
			var checkedStaffId = $("#StaffTBody input[type = 'checkbox']:checked");
			if(checkedStaffId.length!==1){
				alert("请选择一名要调度的普通员工");
				return ;
			}
			//拿id
			var staffId = checkedStaffId.val();
				$.ajax({
					url: 'selectCommonStaff?method=selectCommonStaffById',
					data: {
						staffId:staffId
					},
					type: 'post',
					dataType: 'json',
					success: function (data) {
						//alert(data.message);
						if(data.code==1){
							for (var i = 0; i < $("#assignCategoryDiv").length; i++) {
								$("#assignCategoryDiv")[i].style.display = "block";
							}
							for (var j = 0; j < $("#assignCategoryBtn").length; j++) {
								$("#assignCategoryBtn")[j].style.display = "block";
							}
							staff = data.retData;
						}else{
							alert("请选择普通员工");
						}
					}
				});
		});


		//分配书目的div的确定按钮,分配书目，发送请求
		$("#determineBtn").click(function () {
			var category = $("#assignCategoryText").val();
			if(category==null||category==""||category==undefined){
				alert("请填写分配的书目");
				return ;
			}
			
			//发送请求，删普通员工表，添书目管理员
			$.ajax({
				url:'promoteStaff?method=promoteStaffByCondition',
				data:{
					id:staff.id,
					staffName:staff.staffName,
					gender:staff.gender,
					phone:staff.phone,
					userId:staff.userId,
					category:category
				},

				type:'post',
				dataType:'json',
				success:function (data) {
					//升职成功，刷新员工列表和书目列表
					if(data.code==1){
						alert(data.message);
						$("#categorySelectBtn").click();
						$("#staffSelectBtn").click();
						//分配书目确定按钮成功，div消失
						for (var i = 0; i < $("#assignCategoryDiv").length; i++) {
							$("#assignCategoryDiv")[i].style.display="none";
						}
						for (var j = 0; j < $("#assignCategoryBtn").length; j++) {
							$("#assignCategoryBtn")[j].style.display="none";
						}
					}else {
						alert(data.message);
					}
				}
			});
		});

		//分配书目的div的取消按钮，隐藏div
		$("#cancelBtn").click(function () {
			for (var i = 0; i < $("#assignCategoryDiv").length; i++) {
				$("#assignCategoryDiv")[i].style.display="none";
			}
			for (var j = 0; j < $("#assignCategoryBtn").length; j++) {
				$("#assignCategoryBtn")[j].style.display="none";
			}
		});

		//为降职按钮绑定单击事件
		$("#demoteBtn").click(function () {
			var staffIds = $("#StaffTBody input[type = 'checkbox']:checked");
			if(staffIds.length === 0){
				alert("请选择要调度的书目管理员");
				return ;
			}
			//获取所有选中对象id
			var ids = "";
			$.each(staffIds, function () {
				ids += this.value + ',';
			});
			ids = ids.substr(0, ids.length - 1);
			//发送请求
			$.ajax({
				url: 'demoteStaff?method=demoteStaffByIds',
				data: {
					ids:ids
				},
				type: 'post',
				dataType: 'json',
				success: function (data) {
					alert(data.message);
					//直接再调一次这个函数就刷新列表了
					$("#categorySelectBtn").click();
					$("#staffSelectBtn").click();
				}
			});
		});

		//为辞职按钮绑定单击事件
		$("#resignBtn").click(function () {
			var staffIds = $("#StaffTBody input[type = 'checkbox']:checked");
			if(staffIds.length === 0){
				alert("请选择要辞退的员工");
				return ;
			}
			//获取所有选中对象id
			var ids = "";
			$.each(staffIds, function () {
				ids += this.value + ',';
			});
			ids = ids.substr(0, ids.length - 1);
			if(window.confirm("确定辞退吗？")) {
				//发送请求
				$.ajax({
					url: 'resignStaff?method=resignStaffByIds',
					data: {
						ids: ids
					},
					type: 'post',
					dataType: 'json',
					success: function (data) {
						alert(data.message);
						//直接再调一次这个函数就刷新列表了
						$("#categorySelectBtn").click();
						$("#staffSelectBtn").click();

					}
				});
			}
			});




		function showStaffPage(data) {
			if(data.code==1){
				//有两层list
				//returnObject ----code
				//             ----message
				//             ----retDate----List-----CommonStaffList
				//								  -----CategoryStaffList
				//转化为json字符串

				 $("#staffManageStaffTable tbody").html("");
				var json1 = JSON.stringify(data.retData);
				//转化为json数组
				var jsonArray1 = JSON.parse(json1);
				for(var i = 0 ;i<jsonArray1.length;i++){
					var jsonArray2 = jsonArray1[i];
					for(var j = 0;j<jsonArray2.length;j++){
						$("#staffManageStaffTable").append('<tbody id="StaffTBody"><tr><td><input type="checkbox" value=' + jsonArray2[j].id + '/></td><td>' + jsonArray2[j].staffName + '</td><td>' + jsonArray2[j].gender + '</td><td>' + jsonArray2[j].permissions + '</td><td>' + jsonArray2[j].phone + '</td></tr></tbody>');
					}
				}
			}
		}

		//刷新书目列表的函数
		function showBookForPage (data) {
			if (data.code == 1) {
				var category = data.retData;
				//每查询一次，先把上次查询写到表单的结果清理掉
				 $("#categoryTable tbody").html("");
				//转json字符串
				var json = JSON.stringify(category);
				//json字符串转化为json数组
				var jsonArray = JSON.parse(json);
				for (var i = 0; i < jsonArray.length; i++) {
					$("#categoryTable").append('<tbody id="tBody"><tr><td><input type="checkbox" value=' + jsonArray[i].id + '/></td><td>' + jsonArray[i].bookType + '</td><td>' +jsonArray[i].bookTypeManageStaffs+ '</td></tr></tbody>');

				}
			}
		}

		//普通员工
		$("#addCommonStaff").click(function () {
			//每一次显示这个div，要把之前的值删掉
			$("#addCommonStaffDiv input[type='text']").val("");
			//显示添加普通员工和确定添加的div即可
				for (var i = 0; i < $("#addCommonStaffDiv").length; i++) {
					$("#addCommonStaffDiv")[i].style.display="block";
				}
				for (var j = 0; j < $("#determineAddCommonStaff").length; j++) {
					$("#determineAddCommonStaff")[j].style.display="block";
				}
			});
		//点击确定按，发送添加普通员工请求
		$("#detAddComStaff").click(function () {
			//收集参数

			var commonAccount = $("#commonAccount").val();
			var commonPassword = $("#commonPassword").val();
			var commonStaffName = $("#commonStaffName").val();
			var commonGender = $("#commonGender").val();
			var commonPhone = $("#commonPhone").val();
			if(commonAccount === "" || commonAccount === null || commonAccount === undefined){
				alert("账户不能为空");
				return ;
			}
			if(commonPassword === "" || commonPassword === null || commonPassword === undefined){
				alert("密码不能为空");
				return ;
			}
			if(commonStaffName === "" || commonStaffName === null || commonStaffName === undefined){
				alert("用户名不能为空");
				return ;
			}
			if(commonGender === "" || commonGender === null || commonGender === undefined){
				alert("性别不能为空");
				return ;
			}
			if(commonPhone === "" || commonPhone === null || commonPhone === undefined){
				alert("电话不能为空");
				return ;
			}
			//发送请求
			$.ajax({
				url:'addCommonStaff?method=addCommonStaffByCondition',
				data:{
					commonAccount:commonAccount,
					commonPassword:commonPassword,
					commonStaffName:commonStaffName,
					commonGender:commonGender,
					commonPhone:commonPhone
				},
				type:'post',
				dataType:'json',
				success:function (data) {
					alert(data.message);
					if(data.code == 1){
						var staff = data.retData;
						$("#staffManageStaffTable").append('<tbody id="tBody"><tr><td><input type="checkbox" value=' + staff.id + '/></td><td>'+staff.staffName+'</td><td>'+staff.gender+'</td><td>'+staff.permissions+'</td><td>'+staff.phone+'</td></tr></tbody>');
						//添加成功，div隐没
						for (var i = 0; i < $("#addCommonStaffDiv").length; i++) {
							$("#addCommonStaffDiv")[i].style.display="none";
						}
						for (var j = 0; j < $("#determineAddCommonStaff").length; j++) {
							$("#determineAddCommonStaff")[j].style.display="none";
						}
					}
				}
			});
		});
		//取消按钮，div消失
		$("#canAddComStaff").click(function () {

			for (var i = 0; i < $("#addCommonStaffDiv").length; i++) {
				$("#addCommonStaffDiv")[i].style.display="none";
			}
			for (var j = 0; j < $("#determineAddCommonStaff").length; j++) {
				$("#determineAddCommonStaff")[j].style.display="none";
			}
		});

		//书目管理员
		$("#addCategoryStaff").click(function () {
			//每一次显示这个div，要把之前的值删掉
			$("#addCategoryStaffDiv input[type='text']").val("");
			//显示添加书目管理员工和确认的div即可
			for (var i = 0; i < $("#addCategoryStaffDiv").length; i++) {
				$("#addCategoryStaffDiv")[i].style.display="block";
			}
			for (var j = 0; j < $("#determineAddCategoryStaff").length; j++) {
				$("#determineAddCategoryStaff")[j].style.display="block";
			}
		});
		//点击确定按钮，发送
		$("#detAddCateStaff").click(function () {
			//收集参数
			var categoryAccount = $("#categoryAccount").val();
			var categoryPassword = $("#categoryPassword").val();
			var categoryStaffName = $("#categoryStaffName").val();
			var categoryGender = $("#categoryGender").val();
			var categoryPhone = $("#categoryPhone").val();
			var categoryManageType = $("#categoryManageType").val();
			//不能为空判断
			if(categoryAccount === "" || categoryAccount === null || categoryAccount === undefined){
				alert("账户不能为空");
				return ;
			}
			if(categoryPassword === "" || categoryPassword === null || categoryPassword === undefined){
				alert("密码不能为空");
				return ;
			}
			if(categoryStaffName === "" || categoryStaffName === null || categoryStaffName === undefined){
				alert("用户名不能为空");
				return ;
			}
			if(categoryGender === "" || categoryGender === null || categoryGender === undefined){
				alert("性别不能为空");
				return ;
			}
			if(categoryPhone === "" || categoryPhone === null || categoryPhone === undefined){
				alert("电话不能为空");
				return ;
			}
			if(categoryManageType === "" || categoryManageType === null || categoryManageType === undefined){
				alert("电话不能为空");
				return ;
			}
			$.ajax( {
				url:'addCategoryStaff?method=addCategoryStaffByCondition',
				data:{
					categoryAccount:categoryAccount,
					categoryPassword:categoryPassword,
					categoryStaffName:categoryStaffName,
					categoryGender:categoryGender,
					categoryPhone:categoryPhone,
					categoryManageType:categoryManageType
				},
				type:'post',
				dataType:'json',
				success:function (data) {
					alert(data.message);
					if(data.code==1){
						var categoryStaff = data.retData;
						$("#staffManageStaffTable").append('<tbody id="tBody"><tr><td><input type="checkbox" value=' + categoryStaff.id + '/></td><td>'+categoryStaff.staffName+'</td><td>'+categoryStaff.gender+'</td><td>'+categoryStaff.permissions+'</td><td>'+categoryStaff.phone+'</td></tr></tbody>');
						//刷新书目表
						$("#categorySelectBtn").click();
							//添加成功，隐藏div
							for (var i = 0; i < $("#addCategoryStaffDiv").length; i++) {
								$("#addCategoryStaffDiv")[i].style.display="none";
							}
							for (var j = 0; j < $("#determineAddCategoryStaff").length; j++) {
								$("#determineAddCategoryStaff")[j].style.display = "none";
							}
					}
				}
			});
		});
		//为取消按钮绑定单击，div消失
		$("#canAddCateStaff").click(function () {
			//显示添加书目管理员工和确认的div即可
			for (var i = 0; i < $("#addCategoryStaffDiv").length; i++) {
				$("#addCategoryStaffDiv")[i].style.display="none";
			}
			for (var j = 0; j < $("#determineAddCategoryStaff").length; j++) {
				$("#determineAddCategoryStaff")[j].style.display="none";
			}
		});




    });

</script>

<h1 align='center'>图书管理馆长后台</h1 >

<!--1. 馆长可以添加和删除书籍类型，可以进行普通员工和书目管理员的调度(如升职）
	查询书籍类型（支持模糊查询）
	添加书籍类型
	删除书籍类型，把相关书籍都删掉（两张表）
	职工调度：	升职 普通职工----书目管理员（要分配管理类型）删普通员工给 加书目管理
				降职 书目管理员----普通员工 删数目管理 添普通员工
				辞退 删了即可

-->
<hr>
<b>书目管理</b><br>
查询书目，支持模糊查询
<br><br>

书目查询&nbsp;<input type="text" id="bookCategoryId" size="15px"/>&nbsp;<br>
<input type="button" value="查询" id="categorySelectBtn"/><br>
<table id="categoryTable" border="1px">
	<thead>
		<tr>
			<th><input type="checkbox" id="checkAllCategory"/>选择</th>
			<th>书籍类型</th>
			<th>书目管理员</th>
		</tr>
	</thead>
</table><br>
<input type="button" id="addCategoryBtn" value="添加"/>&nbsp;
<input type="button" id = "deleteCategoryBtn" value="删除"/>
<br>
<br>
<!--添加书目的div，点击添加按钮后弹出来-->
<div style="display: none" id="categoryAddDiv">
	添加书目
	书目<input type="text" size="15px" id="category">
</div>
<div style="display: none" id="categoryAddBtnDiv">
	<input type="button" value="确定" id="determineAddBtn">&nbsp;&nbsp;<input type="button" value="取消" id="cancelAddBtn">
</div>
<hr>

<b>职工管理</b><br>

查询职工，可以根据条件筛选
<br>
	姓名&nbsp;<input type="text" id="staffNameText" size="15px"/>&nbsp;<br>
	性别&nbsp;<input type="text" id="staffSexText" size="15px" />&nbsp;<br>
	职位&nbsp;<input type="text" id="staffTypeText" size="15px"/>&nbsp;<input type="button" id="staffSelectBtn" value="查询"/><br>
	<br>
 <table id="staffManageStaffTable" border="1px">
	 <thead>
		 <tr>
			 <th><input type="checkbox" id="checkAllStaff"/>选择</th>
			 <th>姓名</th>
			 <th>性别</th>
			 <th>职位</th>
			 <th>电话</th>
		 </tr>
	 </thead>
 </table>
<br>
<br>
	<input type="button" value="升职" id="promoteBtn"/>&nbsp;
    <input type="button" value="降职" id="demoteBtn"/>&nbsp;
    <input type="button" value="辞退" id="resignBtn"/>&nbsp;
	<div style="display: none" id="assignCategoryDiv">
		分配管理书目:<input type="text" id="assignCategoryText"/>
	</div>
	<div style="display: none" id="assignCategoryBtn">
		<input type="button" value="确定" id="determineBtn"/>&nbsp;
		<input type="button" value="取消" id="cancelBtn"/>&nbsp;
	</div>
<br>
<%--添加普通员工和书目管理员--%>
<input type="button" value="添加普通员工" id="addCommonStaff"/>
<input type="button" value="添加书目管理员" id="addCategoryStaff"/>

<div id="addCommonStaffDiv" style="display: none">
添加普通员工
<%--
id
staff_name
gender
phone
user_id
permissions
--%>
	账号:<input type="text" id="commonAccount"><br>
	密码:<input type="text" id="commonPassword"><br>
	姓名:<input type="text" id="commonStaffName"><br>
	性别:<input type="text" id="commonGender"><br>
	电话:<input type="text" id="commonPhone"><br>
</div>
<div id="determineAddCommonStaff" style="display: none">
<input type="button"  id="detAddComStaff" value="确定"/>
<input type="button" id="canAddComStaff" value="取消"/>
</div>

<div id="addCategoryStaffDiv" style="display: none">
添加书目管理员<br>
	<%--
    id
    staff_name
    gender
    phone
    manage_type
    permissions
    user_id
    --%>
		账号:<input type="text" id="categoryAccount"><br>
		密码:<input type="text" id="categoryPassword"><br>
		姓名:<input type="text" id="categoryStaffName"><br>
		性别:<input type="text" id="categoryGender"><br>
		电话:<input type="text" id="categoryPhone"><br>
		管理书目类型:<input type="text" id="categoryManageType"><br>

</div>
<div id="determineAddCategoryStaff" style="display: none">
	<input type="button" id="detAddCateStaff" value="确定" />
	<input type="button" id="canAddCateStaff" value="取消"/>
</div>
<br>
<a href="/exit">[安全退出]</a>
</body>
</html>
